<?php

namespace app\admin\controller;

use think\Db;

class User extends AdminController
{
    public function index()
    {
        // 原生
        $list = Db::query("select * from user");
        // DB
        $list = Db::table('lover')->order(['id' => 'desc'])->select();
        // 助手函数
        $list = db('user')->field(['id', 'name'])->select();
        dump($list);
    }

    public function insert()
    {
        // 原生
        // $result = Db::execute("insert into user (id,name,age) values (null,'k1','18')");
        // 准备数据
        $data = [
            "name" => 'K4',
            "age" => '48'
        ];
        // DB
        // $result = Db::table('user')->insert($data);
        // $result = Db::table('user')->insertGetId($data);

        // 助手函数
        $result = db('user')->insert($data);
        var_dump($result);
    }

    public function delete()
    {
        // 原生
        // $result = Db::execute("delete from user where name='k3'");
        // DB
        // $result = Db::table('user')->delete(52);
        // $result = Db::table('user')->where('name','中A')->delete();
        // 助手函数
        $result = db('user')->delete(50);
        var_dump($result);
    }

    public function update()
    {
        // 原生
        // $result = Db::execute("update user set age = '19' where id='1'");
        // DB
        // $result = Db::table('user')->where('id','1')->update(['age'=>'99']);
        // 助手函数
        $result = db('user')->where('id', 1)->update(['age' => '18']);
        var_dump($result);
    }


    public function sw()
    {
        // // 自动控制事务
        // Db::transaction(function () {
        //     $userdata = ['name' => '吕布', 'age' => '35', 'sex' => '1'];
        //     $id = Db::table('user')->insertGetId($userdata);
        //     var_dump('用户的ID: ' . $id);
        //
        //     $loverdata = ['name' => '貂蝉', 'sex' => '2', 'user_id' => $id];
        //     Db::table('lover')->insert($loverdata);
        //
        //     return '关系建立完成...';
        // });

        // 手动控制事务
        Db::startTrans();
        try{
            $userdata = ['name' => '刘备', 'age' => '38', 'sex' => '1'];
            $id = Db::table('user')->insertGetId($userdata);
            var_dump('用户的ID: ' . $id);

            $loverdata = ['name' => '糜夫人', 'sex' => '0', 'user_id' => $id];
            Db::table('lover')->insert($loverdata);

            // 提交事务
            Db::commit();

            return '关系建立完成...';
        } catch (\Exception $e) {
            return '关系建立失败...';
            // 回滚事务
            Db::rollback();
        }


    }


}
